﻿using System.Web.Mvc;
using System.Web.Routing;
using Zinnia.Lite;
using Zinnia.Lite.Web.Services.Imp;

namespace Zinnia.Demo
{
    public class MvcApplication : System.Web.HttpApplication
    {
        /// <summary>
        /// 站点启动
        /// </summary>
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            StartUpServices.Initializer(new WebServiceHub());
        }
        /// <summary>
        /// ASP.Net开始处理每个请求时触发
        /// </summary>
        protected void Application_BeginRequest()
        {

        }

        // 事件处理流程
        // Application_AuthenticateRequest 在验证请求之前触发
        // Application_AuthorizeRequest 在为请求授权之前触发
        // Application_ResolveRequestCache 在Asp.Net确定是否应该生成新的输出，或者由缓存填充前触发。无论何种情况，都将执行改事件处理程序中的代码
        // Application_AcquireRequestState 在获取会话状态之前执行
        // Application_PreRequestHandlerExecute 在将请求发送到服务于请求处理程序对象之前触发。当事件触发后，页面将由HTTP处理程序处理请求
        // Application_PreSendRequestHeaders 在向客户端发送HTTP头之前触发。如果启用响应缓存，这意味着直到所有数据都准备好（默认条件），都不会发送任何数据。该事件总是在Application_EndRequest事件之后。如果禁用响应缓存，那么无论何时将数据发送给客户端，都将触发该事件。响应控制由Page指令的一个属性，或者Web服务的WebMethod属性控制。
        // Application_PreSendRequestContent 向客户端发送HTTP内容之前触发。和Application_PreSendRequestHeaders事件一样，Application_PreSendRequestContent事件能否被触发取决于响应缓存是否可用。
        //<<执行代码>>
        // Application_PostRequestHandlerExecute 当Http处理程序与页面请求一起完成时触发。此时，Reponse对象将获得客户端返回的数据
        // Application_ReleaseRequestState 当释放和更新视图状态时触发
        // Application_UpdateRequestCache 如果输出被缓存，那么缓存更新时将触发




        /// <summary>
        /// 客户端请求处理结束
        /// </summary>
        protected void Application_EndRequest()
        {

        }
    }
}
